const state={
    //存放购物车中的数据
    items:[]

}
const actions={
    //异步增加
    add(context,item){
        context.commit('add',item)
    },
    //异步删除
    del(context,item){
        context.commit('del',item)
    }

}
const mutations={
     //同步增加
     add(state,item){
        //判断要添加到购物车的商品是否已经在购物车中
        //使用js 数组find方法进行查找
        const existedItem=state.items.find((value)=>{
            return value.id===item.id
        })
        //判断existedItem是否存在
        if(existedItem){
            existedItem.num++;
        }else{
            state.items.push({
                id:item.id,
                title:item.title,
                price:item.price,
                src:item.src,
                num:1
            })
        }

    },
    //同步删除
    del(state,item){
        // 查找items,判断item.id是否与我们找到的一致
        state.items.forEach((value,index,arr)=>{
            if(value.id===item.id){
                arr.splice(index,1)
            }
        })
    }

}
const getters={
   totalPrice:state=>{
       return state.items.reduce((total,item,index)=>{
           return total+item.price*item.num
       },0).toFixed(2)
   }

}
export default {
    namespaced:true,
    state,
    actions,
    mutations,
    getters
}